Concurrent programming in ML
نویسنده
چکیده
Concurrent Programming in ML presents the language Concurrent ML (CML), which supports the union of two important programming models: concurrent programming and functional programming. CML is an extension of the functional language Standard ML (SML) and is included as part of the Standard ML of New Jersey (SML/NJ) distribution. CML supports the programming of process communication and synchronization using a unique higher-order concurrent programming mechanism which allows programmers to define their own communication and synchronization abstractions. The main focus of the book is on the practical use of concurrency to implement naturally concurrent applications. In addition to a tutorial introduction to programming in CML, this book presents three extended examples of using CML for systems programming: a parallel software build system, a simple concurrent window manager, and an implementation of distributed tuple spaces. This book includes a chapter on the implementation of concurrency using features provided by the SML/NJ system and provides many examples of advanced SML programming techniques. The appendices include the CML reference manual and a formal semantics of CML. This book is aimed at programmers and professional developers who want to use CML, as well as students, faculty, and other researchers.
منابع مشابه
On Proving the Equivalence of Concurrency Primitives
Various concurrency primitives have been added to sequential programming languages, in order to turn them concurrent. Prominent examples are concurrent buffers for Haskell, channels in Concurrent ML, joins in JoCaml, and handled futures in Alice ML. Even though one might conjecture that all these primitives provide the same expressiveness, proving this equivalence is an open challenge in the ar...
متن کاملA Fully Abstract Semantics for a Concurrent Functional Language with Monadic Types
This paper presents a typed higher-order concurrent functional programming language, based on Moggi’s monadic metalanguage and Reppy’s Concurrent ML. We present an operational semantics for the language, and show that a higherorder variant of the traces model is fully abstract for maytesting. This proof uses a program logic based on Hennessy– Milner logic and Abramsky’s domain theory in logical...
متن کاملFutures and Promises in Alice ML
Various languages have tried to allow useful tools and solutions to concurrent programming, Alice ML is one of these. Alice ML uses futures and promises to help solve the problem of data synchronisa-tion and concurrency. This report explains how these features work, displays a detailed example, performs comparisons to other language solutions and presents related work in this area.
متن کاملConcurrent ML as a Discrete Event Simulation Language
Two common approaches to discrete event simulation, event scheduling (ES) and process interaction (PI) share a fundamental reliance on creating and dispatching continuations. In ES, the model builder implements individual steps of the simulation as procedures or methods, then explicitly schedules the steps by making calls to delay and queueing operations. Modeled entities’ behavior is spread ac...
متن کاملA Semantic Theory for Concurrent ML
In this paper we present a semantic theory for Concurrent ML. It consists of a new effect-based type system and a denotational model. The new type system is based on an extension of the type and effect discipline. In addition to the automatic reconstruction of usual principal types, it computes also the minimal communication effects. The dynamic semantics developed in this paper is denotational...
متن کامل